package com.hw.one.dam2.dao;

import com.hw.one.dam2.param.MovingDeviceParam;
import com.hw.one.dam2.po.PatrolDataPo;
import com.mongodb.DBObject;

import java.util.List;
import java.util.Map;

/**
 * Copyright 2017 汉威.智慧环保事业部.
 * Created by 李亚坤 on 2017/07/18 15:31.
 */
public interface IPatrolTrackDao {


    /**
     * 保存设备巡检轨迹信息
     * @author 李亚坤
     * @createtime 2017年7月18日15:19:04
     * @param paramMap
     */
    void savePatrolDeviceTrackData(Map<String, Object> paramMap);

    /**
     * 根据设备编码查询设备轨迹信息前50条
     * @author 李亚坤
     * @createtime 2017年7月18日16:02:42
     * @param deviceCode
     * @return
     */
    List<Map> findPatrolTrackNew50ByDeviceCode(String deviceCode);

    /**
     * 根据设备编码查询轨迹信息实时表
     * @author 李亚坤
     * @createtime 2017年8月2日09:32:32
     * @param deviceCodeList
     * @return
     */
    List<Map> findPatrolTrackRealDataByDeviceCodes(List<String> deviceCodeList);

    /**
     * 根据设备编码和状态查询轨迹信息实时表
     * @author 李亚坤
     * @createtime 2017年8月2日09:32:32
     * @param
     * @return
     */
    List<PatrolDataPo> findPatrolTrackRealDataByDeviceCodesAndStatus(MovingDeviceParam movingDeviceParam);
    /**
     * 根据设备编码和状态查询轨迹信息实时表
     * @author 李亚坤
     * @createtime 2017年8月2日09:32:32
     * @param
     * @return
     */
    List<PatrolDataPo> findPatrolTrackRealDataByDeviceCodesAndLocScope(MovingDeviceParam movingDeviceParam);

    /**
     * 根据设备编码和状态查询轨迹信息实时表
     * @author 李亚坤
     * @createtime 2017年8月2日09:32:32
     * @param
     * @return
     */
    List<PatrolDataPo> findPatrolTrackRealDataByLocation(MovingDeviceParam movingDeviceParam);

    /**
     * 根据时间和设备编码 查询轨迹信息
     * 再根据设备编码分组，查找最大的上传时间
     *
     * @author 李亚坤
     * @createtime 2017年8月2日09:32:32
     * @param
     * @return
     */
    List<Map> findPatrolTrackByTimeAndGroupByCodes(MovingDeviceParam movingDeviceParam);


    List<PatrolDataPo> findPatrolTrackByDeviceCodeAndTime(Map<String, Object> paramMap);
}
